package day01pm;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author JokerQ
 * @date 2020/8/23 - 17:47
 */
public class Server_v1 {
    public static void main(String[] args) throws IOException {
        /*
        创建一个ServerSocket，用于监听客户端Socket的连接请求
        1、申请端口
        2、接收该端口的所有客户端的连接
        如果端口被占用，会抛出异常：
            Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind
         */
        System.out.println("正在启动服务端...");
        ServerSocket serverSocket = new ServerSocket(8888);
        /*
          每当接收到客户端Socket请求，服务器端也对应产生一个Socket
         */
        System.out.println("服务端启动完毕!");
        /*
        开始监听服务器端口，accept是阻塞方法，等待客户端连接，如果没有连接，一直阻塞，
        有链接成功后，结束阻塞，返回socket对象
         */
        int i = 1;
        while (true){
            Socket socket = serverSocket.accept();
            System.out.println("第"+i+"客户端已经连接");
            i++;
        }
    }
}
